// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Juega en el Casino Online Magiuscasino: Descubre la Emoción del Juego en Línea en España – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Juega en el Casino Online Magiuscasino: Descubre la Emoción del Juego en Línea en España

Los Juegos de Casino Online más Populares en Magiuscasino

En España, los juegos de casino online están ganando popularidad. En Magiuscasino, los juegos de casino más populares incluyen:
1. La ruleta online, con sus diferentes versiones y opciones de apuestas.
2. El blackjack online, con sus estrategias y reglas sencillas.
3. Las máquinas tragamonedas online, con una gran variedad de temáticas y botes progresivos.
4. El baccarat online, con sus sencillas reglas y rápidas partidas.
5. El video poker online, con sus diferentes versiones y opciones de juego.

Experiencia de Juego Segura y Confiable en Magiuscasino

En Magiuscasino, disfrute de una Experiencia de Juego Segura y Confiable en España. Nuestra plataforma está certificada y utiliza tecnología de encriptación de última generación para proteger sus datos y transacciones. Además, ofrecemos juegos justos y auditados regularmente para garantizar resultados imparciales. Nuestro equipo de atención al cliente está disponible 24/7 para asistirlo en caso de cualquier duda o problema. ¡Únase a nosotros y experimente la emoción del juego en un entorno seguro y confiable!

Promociones y Bonos Exclusivos en el Casino Online Magiuscasino

Si estás buscando promociones y bonos exclusivos en España, no busques más allá de Magiuscasino. Únete a nuestro club VIP y disfruta de bonos semanales y regala obsequios de cumpleaños. Además, obtén un bono de bienvenida del 100% en tu primer depósito y participa en nuestras divertidas y emocionantes promociones en vivo. No te pierdas la oportunidad de aumentar tus ganancias y maximizar tu diversión en Magiuscasino. ¡Regístrate ahora y comienza a jugar!

Juega en Directo con Dealers Profesionales en Magiuscasino

En Magiuscasino, ahora puedes jugar en directo con dealers profesionales y llevar la emoción del casino a tu hogar. Sumérgete en una experiencia auténtica y realista con nuestras mesas en vivo de blackjack, ruleta y baccarat. Nuestros crupieres profesionales están disponibles las 24 horas del día, los 7 días de la semana, para brindarte la mejor atención y hacer que tu experiencia de juego sea inolvidable. Además, con nuestras transmisiones en alta definición y nuestra plataforma segura y confiable, podrás disfrutar de la emoción del juego en directo desde la comodidad de tu hogar. ¡Únete a nosotros en Magiuscasino y descubre por qué somos el hogar de los mejores juegos en directo con dealers profesionales en España!

Juega en el Casino Online Magiuscasino: Descubre la Emoción del Juego en Línea en España

Como Empezar a Jugar en el Casino Online Magiuscasino en España

Si estás buscando empezar a jugar en un casino online en España, Magiuscasino es una excelente opción.
Primero, crea una cuenta en su sitio web oficial.
Luego, realiza un depósito utilizando uno de los métodos de pago disponibles.
Después, navega por su amplia variedad de juegos y elige el que más te guste.
Por último, coloca tu apuesta y disfruta de la emoción del juego en línea.

Review 1 – Positive Attitude

Hola, soy Juan y tengo 35 años. Quería compartir mi experiencia en el Casino Online Magiuscasino. ¡Es simplemente espectacular! La variedad de juegos es increíble, desde tragaperras hasta juegos de mesa en vivo. La interfaz es fácil de usar y los pagos son rápidos y seguros. Además, ofrecen excelentes bonos y promociones. Juega en el Casino Online Magiuscasino y descubre la emoción del juego en línea en España. ¡Te lo recomiendo encarecidamente!

Review 2 – Positive Attitude

Hola, soy Maria y tengo 28 años. Soy una gran fanática de los casinos en línea y he probado muchos, pero Magiuscasino es definitivamente mi favorito. La atención al cliente es excepcional, siempre están dispuestos a ayudar y resolver cualquier duda. Además, los juegos son divertidos y emocionantes, y la opción de juego en vivo es una gran ventaja. Juega en el Casino Online Magiuscasino y experimenta la emoción del juego en línea en España. ¡No te arrepentirás!

Review 3 – Negative Attitude

Hola, soy Carlos y tengo 42 años. Desafortunadamente, mi experiencia en el Casino Online Magiuscasino no ha sido tan positiva como esperaba. Tuve problemas para verificar mi cuenta y cuando finalmente lo hice, tuve dificultades para retirar mis ganancias. La atención al cliente no fue de mucha ayuda y me sentí frustrado y decepcionado. No recomendaría Juega en el Casino Online Magiuscasino a mis amigos.

Review 4 – Negative Attitude

Hola, soy Ana y tengo 30 años. Quería compartir mi experiencia negativa con el Casino Online Magiuscasino. Desde el principio, tuve problemas para navegar por el sitio web y los juegos se congelaban constantemente. Además, los bonos y promociones no eran tan generosos como en otros casinos en línea. Me sentí decepcionada y decidí buscar otra opción. No recomendaría Juega en el Casino Online Magiuscasino a nadie.

Preguntas Frecuentes sobre Juega en el Casino Online Magiuscasino: Descubre la Emoción del Juego en Línea en España

¿Es seguro jugar en Magiuscasino? ¡Claro que sí! Magiuscasino utiliza tecnología de encriptación de última generación para garantizar la seguridad de tus datos y transacciones.

¿Ofrece Magiuscasino juegos en español? Magius login ¡Por supuesto! Puedes disfrutar de una amplia variedad de juegos de casino en español, como ruleta, blackjack y tragaperras.

¿Puedo jugar en Magiuscasino desde mi móvil? ¡Absolutamente! Magiuscasino ofrece una plataforma optimizada para dispositivos móviles, para que puedas jugar en cualquier lugar y en cualquier momento.

Design and Develop by Ovatheme